package com.crm.dao.mapper.customMapper.customerManagerCustomMapper;

import com.crm.model.entity.customerManager.CustomerPool;
import com.crm.model.qo.customerManager.CustomerPoolQO;
import com.crm.model.vo.cluePoolManager.UserCompanyVO;
import com.crm.model.vo.customerManager.CustomerPoolVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ Author ：pym
 * @ Date   ：2021/1/15 11:37
 */
public interface CustomerPoolCustomMapper {

    /**
     * 管理模块 -- 客户公海列表 -- 超级管理员
     * @param customerPoolQO
     * @param sortOrder
     * @return
     */
    List<CustomerPoolVO> selectAllCustomerPoolList(@Param("customerPoolQO") CustomerPoolQO customerPoolQO,
                                                   @Param("dateUnit") Integer dateUnit, @Param("sortOrder") String sortOrder);

    /**
     * 管理模块 -- 客户公海列表 -- 普通管理员
     * @param customerPoolQO
     * @param sortOrder
     * @return
     */
    List<CustomerPoolVO> selectNormalCustomerPoolList(@Param("customerPoolQO") CustomerPoolQO customerPoolQO,
                                                      @Param("dateUnit") Integer dateUnit, @Param("sortOrder") String sortOrder,
                                                      @Param("companyId") String companyId);

    /**
     * 根据客户池ID查询公司
     * @param customerPoolId  ---客户池ID
     * @return
     */
    List<UserCompanyVO> selectDistributeCompany(@Param("customerPoolId") String customerPoolId, @Param("deleteStatus") Short deleteStatus);

    /**
     * 根据用户名查询用户信息及所在公司信息(全国公有池、分公司公有池-分配-按人员姓名模糊查找)
     * @param userName ---用户名
     * @return
     */
    List<UserCompanyVO> selectUserAndCompany(@Param("userName") String userName);

    /**
     * 查询分公司公有池的用户
     * @param companyIds ---公司ID集合
     * @param userName ---用户名
     * @return
     */
    List<UserCompanyVO> selectUserByPoolPermission(@Param("companyIds") List<String> companyIds,@Param("userName") String userName);

    /**
     * 查询所有启用的客户池
     * @return
     */
    List<CustomerPool> selectAllEnableCustomerPoolName();

    /**
     * 查询所有启用的全国客户池和用户对应的非公司客户池
     * @return
     */
    List<CustomerPool> selectPartEnableCustomerPoolName(@Param("companyId") String companyId);
}
